package com.itany.corejava.code07_面向对象.继承;

/**
 * @author MissChen
 * @version 1.0
 * @date 2023 年11月02日 16:36
 */

/*定义一个学生类
    有姓名、年龄、性别、班级编号，分别使用不同的访问修饰符来修饰

    定义四个方法，分别使用不同的修饰符来修饰，四个方法可以随意输出内容

    定义一个大学生类，继承Student类，定义一个方法（public修饰，在该方法中尝试访问父类中的属性）

    定义一个测试类，调用大学生类中的方法


    */
public class Student {

    private String name = "alice";
    int age = 20;
    protected String gender = "男";
    public String classNo = "wbs23091";

    private void test01() {
        System.out.println("这是private修饰符的方法");
    }

    void test02() {
        System.out.println("这是没有修饰符的方法");
    }

    protected void test03() {
        System.out.println("这是protected修饰符的方法");
    }

    public void test04() {
        System.out.println("这是public修饰符的方法");
    }

}

/*
    当子类与父类在同一个包中的时候
        父类private修饰的属性与方法不能被子类继承
        父类的默认、protected、public修饰的属性和方法可以被继承的
    当子类与父类在不在一个包中的时候
        父类private修饰、无修饰符修饰的属性与方法不能被子类继承
        父类的protected、public修饰的属性和方法可以被子类继承的

    */


class College extends Student {
    public void show() {
        // System.out.println(name);
        System.out.println(age);
        System.out.println(gender);
        System.out.println(classNo);
        // test01();
        test02();
        test03();
        test04();


    }
}

class Test {
    public static void main(String[] args) {
        College c = new College();
        c.show();
    }
}
